/**
 *@titulo: jquery gestion de eventos del log
 * Eventos de control de log de usuarios
 */

var session = {
  registrado: 0,
  socio: 0,
  area: 0,
  congreso: 0,
  admin: 0,
  proteccion: 0
};

$(document).ready(function(){
  $(window).one('load', function(){
    var usuario= lee_cookie("neumo-correo");
    var password= lee_cookie("neumo-password");
    if (usuario && password){
      $.ajax({
        type: "POST",
        url: "usuario/log/usuario-log-ajax.php",
        data: "correo-log="+ usuario +"&password-log="+password+"&recordar='checked'" ,
        dataType: "json",
        success: (function(datos) {
          if(datos.valido) {
            session_carga(datos);
            $('#registro').load('usuario/log/usuario-saludo.php', 'nombre='+ datos.nombre +'&id_usuario='+datos.id);
            js_menu_control(datos);
            $('#registro').show();
          }else{
            session_limpia();            
            js_menu_control(session);
            dialogo_notificar('<b>log rechazado:</b><br><br>El correo o password no son correctos, la cuenta está bloqueada o su correo no está validado');
          }
        }),
        error: (function(obj,error, execp){
          alert('Error ajax: '+ execp + ' | '+ error + busca_error_ajax(obj));
        })
      });
    }else{
      usuario_salir_log_play(); //no existe recuerdo de contraseña y usuario.
    }
    $('body').delegate('#registrase',{
      click: function(e){
       e.preventDefault();
       usuario_registro();
      }
    });
  });
  
    
  //Eventos validación de usuario
  function usuario_registro(){
    $('#usuario_registro').load('usuario/log/usuario-log.php', 
      function(){
        $(this).dialog({
        title: 'Inicio de sesión',
        width: 480,
        resizable: false,
        modal: true,
        open: function(){
          nombre_validar_log("form.form_user_log input");
        },
        close: function(){
          usuario_salir_log_play();
        },
        buttons:[
          {
            id: 'nuevo',
            text: 'Nueva alta',
            click: function(){$(this).dialog('close');usuario_nuevo()}
          },{
            id: 'olvido',
            text: 'Olvide la contraseña',
            disable: false,
            click: function(){$(this).dialog('close');usario_pide_clave()}
          },{
            id: 'entrar',
            text: 'Entrar',
            click: function(){
              $('#form_user_log').submit();
            }
          },{
            id: 'salir',
            text: 'Salir',
            click: function(){$(this).dialog('close');}                   
          }
        ]
      });
      $('#olvido').button('disable');
      $('#form_user_log').keypress(function(event){
        if (event.keyCode == 13){
           $(this).submit();
        }
      })
    });  
  }
    
   
  $("body").delegate("form.form_user_log",{
    submit: function(e){
      e.preventDefault();
      valido= nombre_validar_log("form.form_user_log input");
      if (valido){
        var url = $(this).attr('action');
        var datos = $(this).serialize() + "&recordar=" + $("#recordar").attr("checked");
        $.ajax({
          type: 'POST',
          url: url ,
          data: datos,
          dataType: 'json',
          success: (function(datos) {
            if(datos.valido) {
              session_carga(datos)
              $('#usuario_registro').dialog('destroy');
              $('#registro').load('usuario/log/usuario-saludo.php', 'nombre='+datos.nombre+'&id_usuario='+datos.id);
              js_menu_control(datos);
              $('#registro').show();
            }else{
              session_limpia();
              js_menu_control(session);
              dialogo_notificar('<b>No tiene autorización</b><br><br>' +
                '<li>El correo y/o password no son correctos.</li>'+
                '<li>Es una nueva cuenta o ha cambiado su correo. Recibirá un e-mail que deberá validar antes.</li>' + 
                '<li>Su cuenta está bloqueada. Si es así, deberá contactar con el administrador</li>');
            }
          }),
          error: (function(obj,error, execp){
            alert('Error ajax: '+ execp + ' | '+ error + busca_error_ajax(obj));
          })
        });
      } else{
        dialogo_notificar('Los campos de deben estar completados correctamente.');
      }
    }
  });
  
  //control de la validación 
  $("body").delegate(".form_user_log input",{
    keyup: function(){
      validaTecla_log(this)
    },
    click: function(){
      validaTecla_log(this)
    },
    blur: function(){
      validaTecla_log(this)
    }
  })
  
  //Evento para salir del log
  $("body").delegate("#logsalir",{
    click: function(e){
      e.preventDefault();
      $.ajax({
        type: 'POST',
        url: "usuario/log/sesion-fin-ajax.php",
        data: "sesion-no",
        dataType: 'json',
        success: (function(datos) {
          session_limpia()
          if (datos){
            usuario_salir_log_play();
            js_menu_control(datos);
          }else{
            session_limpia();
            js_menu_control(session);;
            alert("No se ha podido destruir la SESION");
          }
           menu_selector_objetos($('.sf-menu #a'));
        }),
        error: (function(obj,error, execp){
          alert('Error ajax: '+ execp + ' | '+ error + busca_error_ajax(obj));
        })
      });
    } 
  });
  
  //Evento para solicitar una nueva clave
  function usario_pide_clave(){
    $.ajax({
        type: "POST",
        url:"usuario/log/olvida-clave-ajax.php",
        dataType: "json",
        data: "correo=" + $("#correo-log").val(),
        success:(function(datos){
          if (datos.error){
            alert(datos.valor);
          }else{
            alert(datos.valor);
          }
        }),
        error: (function(obj,error, execp){
          alert('Error ajax: '+ execp + ' | '+ error + busca_error_ajax(obj));
        })
      })
    } 
    
         
  function usuario_salir_log_play(){
    $('#registro').html('<a id="registrase" href="#">Inicio de sesión</a>');
    $('#registro').show();
  }
  
  
  //Evento de usuario sin validar
  function usuario_nuevo(){
    edita_perfil(-1);    
  }
   
  //Eventos de usuario que quire cambiar el perfil
   $("#registro").delegate("#modificaperfil",{
    click: function(e){
      e.preventDefault();
      var id= $("#id_usuario").val();
      edita_perfil(id);
    }
  });
});
  
//  $("#registro #modificaperfil").click(function(e){
//    e.preventDefault();
//    alert(1);
//    var id= $("#id_usuario").val();
//    edita_perfil(id);
//  });
//});

//##############################################################################
//# Subrutinas
//##############################################################################

function session_limpia(){
  session.registrado= 0;
  session.socio= 0;
  session.area= 0;
  session.congreso= 0;
  session.admin= 0;
  session.id_usuario= 0;
}

function session_carga(datos){
  session.registrado= datos.registrado;
  session.socio= datos.socio;
  session.area= datos.area;
  session.congreso= datos.congreso;
  session.admin= datos.admin;
  session.id_usuario= datos.id;
}

function nombre_validar_log(pselector){
  var flag= true;
  $(pselector).each(function(i){
    if (i<3){
      var flag1= validaTecla_log(this);
      flag= (flag && flag1);
    }
  })
  return flag;
}
function validaTecla_log(pthis){
  var name = $(pthis).attr("id");
  var valor= $(pthis).val();
  var largo= valor.length;
  var flag = false;
  switch (name) {
    case 'password-log':
      flag= (largo > 5)
      break;
    case 'correo-log':	
      flag= (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor));
      display_nuevo_registro(flag);
      break;
    default:
      flag= true;
      break;
  }
  (flag) ? $(pthis).css("background-color","#fff") : $(pthis).css("background-color","#fBB");
  return flag;
}
function display_nuevo_registro(pflag){
  if (pflag){
    $('#olvido').button('enable');
  }else{
    $('#olvido').button('disable')
  }
}

